package clienteServidor;

import java.io.Serializable;

public class DatoConfiguracion implements Serializable, Cloneable {
	public static final int DEFAULT_PUERTO= 10000;
	/**
	 * 
	 */
	private static final long serialVersionUID = 8827627487722875537L;
	
	private String red;
	private String mascara;
	private String ipBroadcast;
	private String ipServidor;
	
	private int msEntreTransmisiones;
	public final int PUERTO;
	
	private boolean enviarDatosServidor;
	private int intentosBusquedaServidor;
	private int timeout;
	private int tMin;
	private int tMax;
	
	public DatoConfiguracion(String red, String mascara, String ipBroadcast,
			String ipServidor, int msEntreTransmisiones, int pUERTO,
			boolean enviarDatosServidor, int intentosBusquedaServidor,
			int timeout, int tMin, int tMax) {
		this.setRed(red);
		this.setMascara(mascara);
		this.setIpBroadcast(ipBroadcast);
		this.setIpServidor(ipServidor);
		this.setMsEntreTransmisiones(msEntreTransmisiones);
		PUERTO = pUERTO;
		this.setEnviarDatosServidor(enviarDatosServidor);
		this.setIntentosBusquedaServidor(intentosBusquedaServidor);
		this.setTimeout(timeout);
		this.settMin(tMin);
		this.settMax(tMax);
	}

	public DatoConfiguracion(int msEntreTransmisiones, int puerto) {
		this("", "", "", "", msEntreTransmisiones, puerto, false, 0, 0, 0, 0);
	}
	
	public DatoConfiguracion(int msEntreTransmisiones, int pUERTO,
			boolean enviarDatosServidor, int intentosBusquedaServidor,
			int timeout, int tMin, int tMax) {
		this("", "", "", "", msEntreTransmisiones, pUERTO, enviarDatosServidor, 
				intentosBusquedaServidor, timeout, tMin, tMax);
	}

	protected void setRed(String red) {
		this.red = red;
	}
	protected void setMascara(String mascara) {
		this.mascara = mascara;
	}
	protected void setIpBroadcast(String ipBroadcast) {
		this.ipBroadcast = ipBroadcast;
	}
	protected void setIpServidor(String ipServidor) {
		this.ipServidor = ipServidor;
	}
	protected void setMsEntreTransmisiones(int msEntreTransmisiones) {
		this.msEntreTransmisiones = msEntreTransmisiones;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}
	public String getRed() {
		return red;
	}
	public String getMascara() {
		return mascara;
	}
	public String getIpBroadcast() {
		return ipBroadcast;
	}
	public String getIpServidor() {
		return ipServidor;
	}
	public int getMsEntreTransmisiones() {
		return msEntreTransmisiones;
	}
	
	protected void setEnviarDatosServidor(boolean enviarDatosServidor) {
		this.enviarDatosServidor = enviarDatosServidor;
	}

	protected void setIntentosBusquedaServidor(int intentosBusquedaServidor) {
		this.intentosBusquedaServidor = intentosBusquedaServidor;
	}

	protected void setTimeout(int timeout) {
		this.timeout = timeout;
	}

	protected void settMin(int tMin) {
		this.tMin = tMin;
	}

	protected void settMax(int tMax) {
		this.tMax = tMax;
	}
	
	public boolean isEnviarDatosServidor() {
		return enviarDatosServidor;
	}

	public int getIntentosBusquedaServidor() {
		return intentosBusquedaServidor;
	}

	public int getTimeout() {
		return timeout;
	}

	public int gettMin() {
		return tMin;
	}

	public int gettMax() {
		return tMax;
	}

	@Override
	protected Object clone(){
		Object o= null;
		try{
			o= super.clone();
		}catch (CloneNotSupportedException e){}
		return o;
	}
	
	@Override
	public String toString() {
		return "DatoConfiguracion [red=" + red + ", mascara=" + mascara
				+ ", ipBroadcast=" + ipBroadcast + ", ipServidor=" + ipServidor
				+ ", msEntreTransmisiones=" + msEntreTransmisiones
				+ ", PUERTO=" + PUERTO + ", enviarDatosServidor="
				+ enviarDatosServidor + ", intentosBusquedaServidor="
				+ intentosBusquedaServidor + ", timeout=" + timeout + ", tMin="
				+ tMin + ", tMax=" + tMax + "]";
	}
}
